package com.cloud.tsp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloud.api.domain.alarm.QueryAlarm;
import com.cloud.api.domain.alarm.VehicleAlarm;
import com.cloud.api.domain.alarm.VinAlarmExcel;
import com.cloud.api.domain.report.QueryAlarmReport;
import com.cloud.api.domain.report.QueryAlarms;
import com.cloud.api.domain.report.VehicleAlarmReport;
import com.cloud.api.domain.screen.AlarmList;
import com.cloud.api.domain.screen.RealTimeAlarm;
import com.cloud.api.domain.screen.VehicleBreakdown;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * OLAP Mapper 接口
 * </p>
 *
 * @author haohaibo
 * @since 2024-01-23
 */
//@DS("doris")
public interface VehicleAlarmMapper extends BaseMapper<VehicleAlarm> {

    IPage<VehicleAlarm> selectVehicleAlarmList(IPage<?>page ,@Param("c")QueryAlarm para);

    VehicleAlarm selectVehicleAlarmDetail(@Param("id")String id);

    List<VehicleAlarm> selectAlarmListByVin(@Param("id")String id);

    List<VinAlarmExcel> exportAlarmByVin(@Param("id")String id);

    List<VehicleAlarm> selectType(@Param("para")List<VehicleAlarm> para);

    List<VehicleAlarm> exportVehicleAlarm(@Param("c")QueryAlarm para);
    int exportAlarmList2();
    List<VehicleAlarm> exportAlarmList1(@Param("offset")int offset,@Param("pageSize")int pageSize);
    List<VehicleAlarm> exportAlarmList3(@Param("id")String id,@Param("pageSize")int pageSize);
    String exportAlarmList4(@Param("limitCount")int limitCount);
    Long exportVehicleAlarmCount(@Param("c")QueryAlarm para);

    List<RealTimeAlarm> getRealAlarm();

    List<VehicleBreakdown> selectBreakdowns();

    List<AlarmList> getFaultAlarm();

    List<VehicleAlarmReport> exportAlarmList(@Param("c") QueryAlarmReport para);

    IPage<VehicleAlarmReport> selectAlarmList(IPage<?> page, @Param("c") QueryAlarms para);

    List<VehicleAlarmReport> exportMailAlarmReportList(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
}